package creation_patterns.singleton_pattern.hunger;

/*
 * @Author xuhj
 * @Description 关于instance什么时候会被初始化
 * Singleton类被加载的时候就会被初始化，java虚拟机规范虽然没有强制性约束在什么时候开始类加载过程，
 * 但是对于类的初始化，虚拟机规范则严格规定了有且只有四种情况必须立即对类进行初始化，遇到new、getStatic、putStatic或invokeStatic这4条字节码指令时，如果类没有进行过初始化，
 * 则需要先触发其初始化。 生成这4条指令最常见的java代码场景是：
 * 1）使用new关键字实例化对象2）读取一个类的静态字段（被final修饰、已在编译期把结果放在常量池的静态字段除外）3）设置一个类的静态字段（被final修饰、已在编译期把结果放在常量池的静态字段除外）4）调用一个类的静态方法
 * @Date 10:21 下午 2022/1/1
 * @Param
 * @return
 **/
public class HungerSingleton {
    private static HungerSingleton hungerSingleton = new HungerSingleton();
    private HungerSingleton(){}
    public static HungerSingleton getInstance(){
        return hungerSingleton;
    }
}
